package cn.tedu.net.collection.oopstatic;
//总结:代码之间的执行顺序-->静代码块-->构造代码块-->构造方法-->普通/静态方法--->局部代码块
public class Test3_Blook {
    public static void main(String[] args) {
        //创建对象前自动执行静态代码块且只实行一次
        //创建对象时会自动调用构造代码块和构造方法,构造代码块先构造方法执行每次创建都执行一次
        Person p1 = new Person();
        //当通过对象调用方法时方法内部有局部代码块,局部代码块才执行
        p1.method();
        System.out.println("=========一条华丽的分割线==========");
        Person p2=new Person();
        p2.method();
    }
}
class Person{
    static int a;
    static{
        System.out.println("我是静态代码块");
    }
    {
        System.out.println("我是构造代码块");
    }
    public Person(){
        System.out.println("我是无参构造方法");
    }
    public void method(){
        System.out.println("我是普通方法");
        {
            System.out.println("我是局部代码块");
        }
    }
}